package com.miniotest.controller;

import com.miniotest.constants.FileConstants;
import com.miniotest.pojo.dto.FileDTO;
import com.miniotest.common.Result;
import com.miniotest.service.FileService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

import java.util.Map;
import java.util.Set;

@RestController
@RequestMapping("/file/")
public class fileController {
    @Resource
    private FileService fileService;

    /**
     * 文件上传初始化 ——判断文件是否存在(实现秒传) ——初始化reids
     * @param fileDTO (md5,segNum)
     * @return
     */
    @PostMapping("init")
    public Result<String> uploadInit(FileDTO fileDTO){
        return fileService.uploadInit(fileDTO);
    }
    /**
     * 文件上传
     * @param fileDTO
     * @return
     */
    @PostMapping("upload")
    public Result<String> upload(FileDTO fileDTO){
        return fileService.upload(fileDTO);
    }

    /**
     * 文件上传结束 ——断点续传判断——本地分片文件合并——转m3u8——上传至Minio
     * @param fileDTO
     * @return
     */
    @PostMapping("done")
    public Result<Map<String,Set>> uploadDone(FileDTO fileDTO){
        return fileService.uploadDone(fileDTO);
    }
}

